window.bpull = window.bpull || {
	version: "1-0-0",
	emptyFn: function() {}
};
bpull.ajax = bpull.ajax || {};
bpull.ajax.request = function(e, q) {
	q = q || {};
	var l = q.data || "";
	var h = !(q.async === false);
	var j = q.username || "";
	var o = q.password || "";
	var b = q.method || "GET";
	var g = q.headers || {};
	var d = {};
	var i;
	for (i in q) {
		if (i.indexOf("on") === 0) {
			d[i] = q[i]
		}
	}
	g["X-Request-By"] = "bpull.ajax";
	try {
		var p = c();
		if ((new RegExp("^get\x24", "i")).test(b)) {
			var a = (e.indexOf("?") >= 0 ? "&": "?") + "b" + (new Date()).getTime() + "=1";
			e += a
		}
		if (j) {
			p.open(b, e, h, j, o)
		} else {
			p.open(b, e, h)
		}
		if (h) {
			p.onreadystatechange = m
		}
		if ((new RegExp("^post\x24", "i")).test(b)) {
			p.setRequestHeader("Content-Type", "application/x-www-form-urlencoded")
		} else {}
		for (i in g) {
			if (g.hasOwnProperty(i)) {
				p.setRequestHeader(i, g[i])
			}
		}
		f("beforerequest");
		p.send(l);
		if (!h) {
			m()
		}
	} catch(n) {
		f("failure")
	}
	return p;
	function m() {
		if (p.readyState == 4) {
			try {
				var r = p.status
			} catch(k) {
				f("failure");
				return
			}
			f("status");
			f(r);
			if ((r >= 200 && r < 300) || r == 304 || r == 1223) {
				f("success")
			} else {
				f("failure")
			}
			window.setTimeout(function() {
				p.onreadystatechange = new Function();
				if (h) {
					p = null
				}
			},
			0)
		}
	}
	function c() {
		var r;
		if (window.XMLHttpRequest) {
			r = new XMLHttpRequest()
		} else {
			try {
				r = new ActiveXObject("Msxml2.XMLHTTP")
			} catch(k) {
				r = new ActiveXObject("Microsoft.XMLHTTP")
			}
		}
		return r
	}
	function f(r) {
		r = "on" + r;
		var k = d[r];
		var s = bpull.ajax[r];
		if ("function" == typeof k) {
			if (r != "onstatus") {
				k(p)
			} else {
				k(p, p.status)
			}
		} else {
			if ("function" == typeof s) {
				if (r == "onsuccess") {
					return
				}
				if (r != "onstatus") {
					s(p)
				} else {
					s(p, p.status)
				}
			}
		}
	}
};
bpull.ajax.get = function(b, a) {
	return bpull.ajax.request(b, {
		onsuccess: a
	})
};
bpull.ajax.post = function(b, c, a) {
	return bpull.ajax.request(b, {
		onsuccess: a,
		method: "POST",
		data: c
	})
};
bpull.array = bpull.array || {};
bpull.bind = function(b, a) {
	return function() {
		return b.apply(a, arguments)
	}
};
bpull.array.filter = function(h, d, c) {
	if (typeof(d) != "function") {
		return []
	}
	var g = bpull.bind(d, c),
	b = [],
	f = h.length;
	for (var a = 0,
	e; a < f; a++) {
		e = h[a];
		if (g(e, a, h) === true) {
			b[b.length] = e
		}
	}
	return b
};
bpull.array.find = function(g, c, b) {
	if (typeof(c) == "function") {
		var f = bpull.bind(c, b),
		e = g.length;
		for (var a = 0,
		d; a < e; a++) {
			d = g[a];
			if (f(d, a, g) === true) {
				return d
			}
		}
	}
};
bpull.array.indexOf = function(d, b, c) {
	var a = d.length;
	c = Number(c) || 0;
	c = c < 0 ? Math.ceil(c) : Math.floor(c);
	if (c < 0) {
		c = 0
	} else {
		if (c >= a) {
			c = a - 1
		}
	}
	if (typeof(b) != "function") {
		for (; c < a; c++) {
			if (d[c] === b) {
				return c
			}
		}
	} else {
		for (; c < a; c++) {
			if (b(d[c], c)) {
				return c
			}
		}
	}
	return - 1
};
bpull.array.lastIndexOf = function(d, b) {
	var a = d.length,
	c;
	if (typeof(b) != "function") {
		for (c = a - 1; c >= 0; c--) {
			if (d[c] === b) {
				return c
			}
		}
	} else {
		for (c = a - 1; c >= 0; c--) {
			if (b(d[c], c)) {
				return c
			}
		}
	}
	return - 1
};
bpull.array.map = function(g, d, c) {
	var f = bpull.bind(d, c),
	b = [],
	e = g.length;
	if (typeof(d) != "function") {
		return b
	}
	for (var a = 0; a < e; a++) {
		b[b.length] = f(g[a], a, g)
	}
	return b
};
bpull.array.remove = function(f, e) {
	var d = f.length;
	var b = typeof(e) == "function" ? e: function(g) {
		return e === g
	};
	for (var a = d - 1; a >= 0; a--) {
		var c = f[a];
		if (b(c, a, f) === true) {
			f.splice(a, 1)
		}
	}
};
bpull.array.removeAt = function(c, a) {
	var b = c[a];
	c.splice(a, 1);
	return b
};
bpull.array.unique = function(a, e) {
	var g = a.length;
	var c = new Array(g);
	var f = a.slice(0);
	e = e ||
	function(h, i) {
		return h === i
	};
	for (var d = 0; d < g; d++) {
		for (var b = d + 1; b < g; b++) {
			if (e(a[d], a[b])) {
				if (c[d] || c[b]) {
					continue
				}
				c[b] = 1
			}
		}
	}
	for (var d = g - 1; d >= 0; d--) {
		if (c[d]) {
			f.splice(d, 1)
		}
	}
	return f
};
bpull.isString = function(a) {
	return (typeof a == "object" && a && a.constructor == String) || typeof a == "string"
};
bpull.G = function() {
	for (var b = [], c = arguments.length - 1; c > -1; c--) {
		var d = arguments[c];
		b[c] = null;
		if (typeof d == "object" && d && d.dom) {
			b[c] = d.dom
		} else {
			if ((typeof d == "object" && d && d.tagName) || d == window || d == document) {
				b[c] = d
			} else {
				if (bpull.isString(d) && (d = document.getElementById(d))) {
					b[c] = d
				}
			}
		}
	}
	return b.length < 2 ? b[0] : b
};
bpull.trim = function(b, a) {
	if (a == "left") {
		return b.replace(/(^[\s\t\xa0\u3000]+)/g, "")
	}
	if (a == "right") {
		return b.replace(new RegExp("[\\u3000\\xa0\\s\\t]+\x24", "g"), "")
	}
	return b.replace(new RegExp("(^[\\s\\t\\xa0\\u3000]+)|([\\u3000\\xa0\\s\\t]+\x24)", "g"), "")
};
bpull.addClass = function(a, b) {
	if (! (a = bpull.G(a))) {
		return null
	}
	b = bpull.trim(b);
	if (!new RegExp("(^| )" + b.replace(/(\W)/g, "\\\x241") + "( |\x24)").test(a.className)) {
		a.className = bpull.trim(a.className.split(/\s+/).concat(b).join(" "))
	}
};
bpull.ac = bpull.addClass; (function() {
	var b = {};
	bpull.BaseClass = function(c) {
		b[(this.guid = (c || bpull.BaseClass.guid()))] = this
	};
	var a = 0;
	bpull.BaseClass.guid = function() {
		return "MZ__" + (a++).toString(36)
	};
	bpull.BaseClass.create = function(e) {
		var f = new bpull.BaseClass();
		if (e.guid) {
			delete e.guid
		}
		for (var d in e) {
			f[d] = e[d]
		}
		return f
	};
	window.Instance = bpull.instance = function(c) {
		return b[c]
	};
	bpull.BaseClass.prototype.dispose = function() {
		if (this.guid) {
			delete b[this.guid]
		}
		for (var c in this) {
			if (typeof this[c] != "function") {
				delete this[c]
			}
		}
	};
	bpull.BaseClass.decontrol = function(c) {
		if (c && c.guid) {
			delete b[c.guid]
		}
	};
	bpull.BaseClass.prototype.toString = function() {
		return "[object " + (this._className || "Object") + "]"
	}
})();
bpull.BaseEvent = function(a, b) {
	this.type = a;
	this.returnValue = true;
	this.target = b || null;
	this.currentTarget = this.srcElement = null
};
bpull.BaseClass.prototype.addEventListener = function(d, c, b) {
	if (typeof c != "function") {
		throw ("addEventListener:" + c + " is not a function")
	}
	if (!this.__listeners) {
		this.__listeners = {}
	}
	var a = this.__listeners,
	e;
	if (typeof b == "string" && b) {
		if (/[^\w\-]/.test(b)) {
			throw ("nonstandard key:" + b)
		} else {
			c.hashCode = b;
			e = b
		}
	}
	if (d.indexOf("on") != 0) {
		d = "on" + d
	}
	if (typeof a[d] != "object") {
		a[d] = {}
	}
	e = e || bpull.BaseClass.guid();
	c.hashCode = e;
	a[d][e] = c
};
bpull.BaseClass.prototype.removeEventListener = function(c, b) {
	if (typeof b == "function") {
		b = b.hashCode
	} else {
		if (typeof b != "string") {
			return
		}
	}
	if (!this.__listeners) {
		this.__listeners = {}
	}
	if (c.indexOf("on") != 0) {
		c = "on" + c
	}
	var a = this.__listeners;
	if (!a[c]) {
		return
	}
	if (a[c][b]) {
		delete a[c][b]
	}
};
bpull.BaseClass.prototype.dispatchEvent = function(c) {
	if (!this.__listeners) {
		this.__listeners = {}
	}
	var b, a = this.__listeners,
	d = c.type;
	c.target = c.srcElement = c.target || c.srcElement || this;
	c.currentTarget = this;
	if (typeof this[d] == "function") {
		this[d](c)
	}
	if (typeof a[d] == "object") {
		for (b in a[d]) {
			if (typeof a[d][b] == "function") {
				a[d][b].call(this, c)
			}
		}
	}
	return c.returnValue
};
bpull.body = function() {
	var a = 0,
	i = 0,
	f = 0,
	c = 0,
	b = 0,
	j = 0;
	var g = window,
	e = document,
	h = e.documentElement;
	a = h.clientWidth || e.body.clientWidth;
	i = g.innerHeight || h.clientHeight || e.body.clientHeight;
	c = e.body.scrollTop || h.scrollTop;
	f = e.body.scrollLeft || h.scrollLeft;
	b = Math.max(e.body.scrollWidth, h.scrollWidth || 0);
	j = Math.max(e.body.scrollHeight, h.scrollHeight || 0, i);
	return {
		scrollTop: c,
		scrollLeft: f,
		documentWidth: b,
		documentHeight: j,
		viewWidth: a,
		viewHeight: i
	}
};
bpull.decodeHTML = function(a) {
	return a.replace(/&quot;/g, '"').replace(/&lt;/g, "<").replace(/&gt;/g, ">").replace(/&amp;/g, "&")
};
bpull.browser = bpull.browser || {}; (function() {
	var a = navigator.userAgent;
	bpull.firefox = bpull.browser.firefox = /firefox\/(\d+\.\d)/i.test(a) ? parseFloat(RegExp["\x241"]) : 0;
	bpull.ie = bpull.browser.ie = /msie (\d+\.\d)/i.test(a) ? parseFloat(RegExp["\x241"]) : 0;
	bpull.opera = bpull.browser.opera = /opera\/(\d+\.\d)/i.test(a) ? parseFloat(RegExp["\x241"]) : 0;
	bpull.safari = bpull.browser.safari = (/(\d+\.\d)(\.\d)?\s+safari/i.test(a) && !/chrome/i.test(a)) ? parseFloat(RegExp["\x241"]) : 0;
	try {
		bpull.browser.maxthon = /(\d+\.\d)/.test(external.max_version) ? parseFloat(RegExp["\x241"]) : 0
	} catch(b) {
		bpull.browser.maxthon = 0
	}
	bpull.maxthon = bpull.browser.maxthon;
	bpull.isGecko = bpull.browser.isGecko = /gecko/i.test(a) && !/like gecko/i.test(a);
	bpull.isStrict = bpull.browser.isStrict = document.compatMode == "CSS1Compat";
	bpull.isWebkit = bpull.browser.isWebkit = /webkit/i.test(a)
})();
bpull.each = function(f, b) {
	if (typeof b != "function") {
		return f
	}
	if (f) {
		var a;
		if (f.length === undefined) {
			for (var c in f) {
				if (c in {}) {
					continue
				}
				a = b.call(f[c], f[c], c);
				if (a == "break") {
					break
				}
			}
		} else {
			for (var d = 0,
			e = f.length; d < e; d++) {
				a = b.call(f[d], f[d], d);
				if (a == "break") {
					break
				}
			}
		}
	}
	return f
};
bpull.getCurrentStyle = function(a, c) {
	var e = null;
	if (! (a = bpull.G(a))) {
		return null
	}
	if (e = a.style[c]) {
		return e
	} else {
		if (a.currentStyle) {
			e = a.currentStyle[c]
		} else {
			var d = a.nodeType == 9 ? a: a.ownerDocument || a.document;
			if (d.defaultView && d.defaultView.getComputedStyle) {
				var b = d.defaultView.getComputedStyle(a, "");
				if (b) {
					e = b[c]
				}
			}
		}
	}
	return e
};
bpull.dom = bpull.dom || {};
bpull.isElement = function(a) {
	if (a === undefined || a === null) {
		return false
	}
	return a && a.nodeName && a.nodeType == 1
};
bpull.isDocument = function(a) {
	if (a === undefined || a === null) {
		return false
	}
	return a && a.nodeType == 9
};
bpull.dom.getDocument = function(a) {
	if (bpull.isElement(a) || bpull.isDocument(a)) {
		return a.nodeType == 9 ? a: a.ownerDocument || a.document
	} else {
		throw new Error("[bpull.dom.getDocument] param must be Element or Document")
	}
};
bpull.isElement = function(a) {
	return a && a.nodeType == 1
};
bpull.dom.getPosition = function(d) {
	d = bpull.G(d);
	if (!bpull.isElement(d)) {
		throw new Error("[bpull.dom.getPosition] param must be Element")
	}
	var g = bpull.dom.getDocument(d);
	var f = bpull.isGecko > 0 && g.getBoxObjectFor && bpull.getCurrentStyle(d, "position") == "absolute" && (d.style.top === "" || d.style.left === "");
	var h = {
		left: 0,
		top: 0
	};
	var b = (bpull.ie && !bpull.isStrict) ? g.body: g.documentElement;
	if (d == b) {
		return h
	}
	var c = null;
	var e;
	if (d.getBoundingClientRect) {
		e = d.getBoundingClientRect();
		h.left = e.left + Math.max(g.documentElement.scrollLeft, g.body.scrollLeft);
		h.top = e.top + Math.max(g.documentElement.scrollTop, g.body.scrollTop);
		h.left -= g.documentElement.clientLeft;
		h.top -= g.documentElement.clientTop;
		if (bpull.ie && !bpull.isStrict) {
			h.left -= 2;
			h.top -= 2
		}
	} else {
		if (g.getBoxObjectFor && !f) {
			e = g.getBoxObjectFor(d);
			var a = g.getBoxObjectFor(b);
			h.left = e.screenX - a.screenX;
			h.top = e.screenY - a.screenY
		} else {
			c = d;
			do {
				h.left += c.offsetLeft;
				h.top += c.offsetTop;
				if (bpull.isWebkit > 0 && bpull.getCurrentStyle(c, "position") == "fixed") {
					h.left += g.body.scrollLeft;
					h.top += g.body.scrollTop;
					break
				}
				c = c.offsetParent
			} while ( c && c != d );
			if (bpull.opera > 0 || (bpull.isWebkit > 0 && bpull.getCurrentStyle(d, "position") == "absolute")) {
				h.top -= g.body.offsetTop
			}
			c = d.offsetParent;
			while (c && c != g.body) {
				h.left -= c.scrollLeft;
				if (!bpull.opera || c.tagName != "TR") {
					h.top -= c.scrollTop
				}
				c = c.offsetParent
			}
		}
	}
	return h
};
bpull.dragBehavior = function(a) {
	var b = this;
	b.element = a;
	b.firstStart = 1;
	b.start = function(h, d) {
		var e = bpull.G(b.element);
		b._setCapture(e);
		if (d) {
			b.range = [];
			var g = e.offsetWidth;
			var c = e.offsetHeight;
			b.range[0] = d[0];
			b.range[1] = d[2] - g;
			b.range[2] = d[1];
			b.range[3] = d[3] - c
		} else {
			b.range = null
		}
		b.orgMoveHandler = document.onmousemove;
		b.lastMouseX = h.clientX;
		b.lastMouseY = h.clientY;
		b.epos = bpull.dom.getPosition(e),
		b.lastEleX = b.epos.left,
		b.lastEleY = b.epos.top,
		b._timer = 0;
		b._date = new Date();
		function f(i, l) {
			var k = document.styleSheets;
			if (!k || k.length <= 0) {
				var m = document.createElement("STYLE");
				m.type = "text/css";
				var j = document.getElementsByTagName("HEAD")[0];
				j.appendChild(m)
			}
			k = document.styleSheets;
			k = k[k.length - 1];
			if (bpull.ie) {
				k.addRule(i, l)
			} else {
				k.insertRule(i + " { " + l + " }", k.cssRules.length)
			}
		}
		b.onmoveHandler = function(p) {
			if (b.firstStart) {
				b.onstart();
				b.firstStart = 0;
				b.ifr = bpull.G("tangram_drag_ifr");
				if (!b.ifr) {
					b.ifr = document.createElement("div");
					var o = b.ifr;
					o.id = o.className = "tangram_drag_ifr";
					f("#tangram_drag_ifr", "position: absolute;width: 100%;height: 100%;background: #fff;z-index: 10000;opacity: 0;filter: alpha(opacity=0);-ms-filter: alpha(opacity=0);-moz-user-select: none;-webkit-user-select: none;");
					o.onselectstart = function() {
						return false
					};
					document.body.appendChild(o)
				}
				b.ifr.style.display = "block";
				var j = bpull.body();
				b.ifr.style.top = j.scrollTop + "px";
				b.ifr.style.left = j.scrollLeft + "px"
			}
			var k = b._date.getMilliseconds();
			if (k - b._timer < 20) {
				return
			}
			var i = p.clientX,
			n = p.clientY,
			m = b.lastEleX + (i - b.lastMouseX),
			l = b.lastEleY + (n - b.lastMouseY);
			if (b.range) {
				m = m < b.range[0] ? b.range[0] : (m > b.range[1] ? b.range[1] : m);
				l = l < b.range[2] ? b.range[2] : (l > b.range[3] ? b.range[3] : l)
			}
			b.lastEleX = m;
			b.lastEleY = l;
			e.style.left = m + "px";
			e.style.top = l + "px";
			b.lastMouseX = i;
			b.lastMouseY = n;
			b.onmove({
				elementX: m,
				elementY: l,
				mouseX: i,
				mouseY: n,
				element: b.element
			})
		};
		document.onmousemove = function(i) {
			b.onmoveHandler(window.event || i)
		}
	};
	b.stop = function() {
		b.ifr = bpull.G("tangram_drag_ifr");
		if (b.ifr) {
			b.ifr.style.display = "none"
		}
		b.onstop({
			elementX: b.lastEleX,
			elementY: b.lastEleY,
			mouseX: b.lastMouseX,
			mouseY: b.lastMouseY,
			element: b.element
		});
		document.onmousemove = b.orgMoveHandler;
		b._releaseCapture(bpull.G(b.element))
	};
	b.onstart = function() {};
	b.onmove = function() {};
	b.onstop = function() {};
	b._captureElem = null;
	b._setCapture = function(c) {
		b._captureElem = c;
		if (c.setCapture) {
			c.setCapture()
		} else {
			if (bpull.isGecko) {
				window.addEventListener("mouseout",
				function(d) {
					var e = b._captureElem;
					if (e && !d.relatedTarget) {
						if ("html" == d.target.nodeName.toLowerCase()) {
							var f = document.createEvent("MouseEvents");
							f.initMouseEvent("mouseup", true, true, window, 0, d.screenX, d.screenY, d.clientX, d.clientY, d.ctrlKey, d.altKey, d.shiftKey, d.metaKey, d.button, null);
							e.dispatchEvent(f)
						}
					}
				},
				true)
			}
		}
	};
	b._releaseCapture = function(c) {
		b._captureElem = null;
		if (c.releaseCapture) {
			c.releaseCapture()
		} else {}
	}
};
bpull.drag = function(b, d, a) {
	var c = bpull.drag;
	c.nowDragging = bpull.G(b);
	c.o = new bpull.dragBehavior(c.nowDragging);
	c.o.onstart = a.onstart ||
	function() {};
	c.o.onmove = a.onmove ||
	function() {};
	c.o.onstop = a.onstop ||
	function() {};
	c.o.start(d, a.range)
};
bpull.drag.stop = function() {
	var a = bpull.drag;
	if (typeof a.o != "undefined") {
		a.o.stop()
	}
};
bpull.dragable = function(b, a) {
	var c = bpull.G(a.handler) || bpull.G(b);
	a.onbeforestart = a.onbeforestart ||
	function() {};
	a.onstart = a.onafterstart ||
	function() {};
	delete a.onafterstart;
	c.onmousedown = function(d) {
		a.onbeforestart();
		bpull.dragable.orgUpHandler = document.onmouseup;
		bpull.drag(b, window.event || d, a);
		return false
	};
	c.onselectstart = function(d) {
		return false
	};
	document.onmouseup = function(d) {
		bpull.drag.stop();
		document.onmouseup = bpull.dragable.orgUpHandler
	}
};
bpull.extend = function(c, a) {
	if (c && a && typeof(a) == "object") {
		for (var b in a) {
			c[b] = a[b]
		}
	}
	return c
};
bpull.regEscape = function(a) {
	return a.replace(new RegExp("([.*+?^=!:\x24{}()|[]/\\])", "g"), "\\\x241")
};
bpull.format = function(h, j) {
	if (arguments.length > 1) {
		var e = bpull.format,
		g = new RegExp("([.*+?^=!:\x24{}()|[\\]\\/\\\\])", "g"),
		f = (e.left_delimiter || "{").replace(g, "\\\x241"),
		a = (e.right_delimiter || "}").replace(g, "\\\x241");
		var c = e._r1 || (e._r1 = new RegExp("#" + f + "(.+?)" + a, "g")),
		b = e._r2 || (e._r2 = new RegExp("#" + f + "(\\d+)" + a, "g"));
		if (typeof(j) == "object" && !bpull.isString(j)) {
			return h.replace(c,
			function(k, m) {
				var l = j[m];
				if (typeof l == "function") {
					l = l(m)
				}
				return typeof(l) == "undefined" ? "": l
			})
		} else {
			if (typeof(j) != "undefined") {
				var i = Array.prototype.slice.call(arguments, 1);
				var d = i.length;
				return h.replace(b,
				function(k, l) {
					l = parseInt(l, 10);
					return (l >= d) ? k: i[l]
				})
			}
		}
	}
	return h
};
bpull.format.delimiter = function(c, a) {
	var b = bpull.format;
	b.left_delimiter = c || "{";
	b.right_delimiter = a || c || "}";
	b._r1 = b._r2 = null
};
bpull.getAttr = function(f, b) {
	if (f = bpull.G(f)) {
		var a = bpull.isString(b) ? 1 : 0;
		b = a ? [b] : b;
		var c = [];
		for (var d = 0; d < b.length; d = d + 1) {
			var e = b[d];
			if ("style" == e) {
				c[d] = f.style.cssText
			} else {
				if ("for" == e) {
					c[d] = f.htmlFor
				} else {
					if ("class" == e || "className" == e) {
						c[d] = f.className
					} else {
						c[d] = f.getAttribute(e, 2) || f[e] || ""
					}
				}
			}
		}
		if (a) {
			c = c[0]
		}
		return c
	}
};
bpull.ie = /msie (\d+\.\d)/i.test(navigator.userAgent) ? parseFloat(RegExp["\x241"]) : 0;
bpull.getStyle = function(c, a) {
	if (c = bpull.G(c)) {
		var b = bpull.isString(a);
		a = b ? [a] : a;
		var g = [];
		var h = function(i, n) {
			return n.charAt(1).toUpperCase()
		};
		var k = function(n) {
			var r = n.split(",");
			var q = "#",
			p;
			for (var o = 0; p = r[o]; o++) {
				p = p.replace(/[^\d]/gi, "");
				p = parseInt(p, 10);
				p = p.toString(16);
				if (p.length == 1) {
					p = "0" + p
				}
				q += p
			}
			return q.toUpperCase()
		};
		for (var f = 0,
		d; f < a.length; f = f + 1) {
			var e = a[f].replace(/(-[a-z])/gi, h);
			if ("float" == e) {
				e = bpull.ie ? "styleFloat": "cssFloat"
			}
			if ("opacity" == e && bpull.ie) {
				var m = c.style.filter;
				d = m && m.indexOf("opacity=") >= 0 ? (parseFloat(m.match(/opacity=([^)]*)/)[1]) / 100) + "": "1"
			}
			if (d = c.style[e]) {
				g[f] = d
			} else {
				if (c.currentStyle) {
					d = c.currentStyle[e]
				} else {
					var j = c.nodeType == 9 ? c: c.ownerDocument || c.document;
					if (j.defaultView && j.defaultView.getComputedStyle) {
						var l = j.defaultView.getComputedStyle(c, "");
						if (l) {
							d = l[e]
						}
					}
				}
			}
			if (/color/i.test(e) && d.indexOf("rgb(") != -1) {
				d = k(d)
			}
			g[f] = d
		}
		if (b) {
			g = g[0]
		}
		return g
	}
};
bpull.inherits = function(a, d, c) {
	var b, e, g = a.prototype,
	f = function() {};
	f.prototype = d.prototype;
	e = a.prototype = new f();
	if (typeof c == "string") {
		e._className = c
	}
	for (b in g) {
		e[b] = g[b]
	}
	a.prototype.constructor = g.constructor;
	a.superClass = d.prototype;
	g = f = null;
	return e
};
bpull.insertHTML = function(e, c, d) {
	e = bpull.G(e);
	if (!e) {
		return false
	}
	if (e.insertAdjacentHTML) {
		e.insertAdjacentHTML(c, d)
	} else {
		if (typeof(HTMLElement) != "undefined" && !window.opera) {
			var a = e.ownerDocument.createRange();
			a.setStartBefore(e);
			var b = a.createContextualFragment(d);
			switch (c) {
			case "beforeBegin":
				e.parentNode.insertBefore(b, e);
				break;
			case "afterBegin":
				e.insertBefore(b, e.firstChild);
				break;
			case "beforeEnd":
				e.appendChild(b);
				break;
			case "afterEnd":
				if (!e.nextSibling) {
					e.parentNode.appendChild(b)
				} else {
					e.parentNode.insertBefore(b, e.nextSibling)
				}
				break
			}
		}
	}
};
bpull.namespace = function(g, b) {
	if ((new RegExp("^(\\.[\\w\\\x24][\\w\\-\\\x24]*)+\x24")).test("." + g)) {
		b = typeof b == "function" || typeof b == "object" ? b || window: window;
		for (var f, c = g.split("."), d = 0; d < c.length; d++) {
			f = b[c[d]];
			if (!f || !(typeof f == "object" || typeof f == "function")) {
				b[c[d]] = {}
			}
			b = b[c[d]]
		}
		return b
	}
	return null
};
bpull.ns = bpull.namespace;
bpull.on = function(h, f, e, g) {
	if (! (h = bpull.G(h)) || typeof e != "function") {
		return h
	}
	f = f.replace(/^on/i, "").toLowerCase();
	function b(i) {
		return i || window.event
	}
	var d = function(i) {
		e.call(d.src, b(i))
	};
	d.src = h;
	var c = bpull.on._listeners;
	var a = [h, f, e, d];
	c[c.length] = a;
	if (h.attachEvent) {
		h.attachEvent("on" + f, d)
	} else {
		if (h.addEventListener) {
			h.addEventListener(f, d, false)
		}
	}
	return h
};
bpull.on._listeners = [];
bpull.Q = function(e, d, b) {
	if (!bpull.isString(e) || e.length <= 0 || (d && !(d = bpull.G(d)))) {
		return null
	}
	var i = [],
	b = (typeof b == "string" && b.length > 0) ? b.toLowerCase() : null,
	c = d || document;
	if (c.getElementsByClassName) {
		bpull.each(c.getElementsByClassName(e),
		function(j) {
			if (b !== null) {
				if (j.tagName.toLowerCase() == b) {
					i[i.length] = j
				}
			} else {
				i[i.length] = j
			}
		})
	} else {
		e = e.replace(/\-/g, "\\-");
		var a = new RegExp("(^|\\s{1,})" + bpull.trim(e) + "(\\s{1,}|\x24)"),
		g = (b === null) ? (c.all ? c.all: c.getElementsByTagName("*")) : c.getElementsByTagName(b),
		f = g.length,
		h = f;
		while (f--) {
			if (a.test(g[h - f - 1].className)) {
				i[i.length] = g[h - f - 1]
			}
		}
	}
	return i
};
bpull.removeClass = function(a, b) {
	if (! (a = bpull.G(a))) {
		return
	}
	b = bpull.trim(b);
	var d = a.className.replace(new RegExp("(^| +)" + b.replace(/(\W)/g, "\\\x241") + "( +|\x24)", "g"), "\x242");
	if (a.className != d) {
		a.className = bpull.trim(d)
	}
};
bpull.rc = bpull.removeClass;
bpull.setStyle = function() {
	var c = {},
	b = /z-?index|font-?weight|opacity|zoom|line-?height/i,
	a = function(d, e) {
		return e.charAt(1).toUpperCase()
	};
	return function(g, d, h) {
		if (! (g = bpull.G(g))) {
			return
		}
		if (typeof d == "string") {
			var e;
			if (! (e = c[d])) {
				e = c[d] = d.replace(/(-[a-z])/gi, a)
			}
			var f = g.style;
			if (e == "opacity") {
				if ("opacity" in f) {
					f.opacity = h
				} else {
					if ("MozOpacity" in f) {
						f.MozOpacity = h
					} else {
						if ("filter" in f) {
							f.filter = (f.filter || "").replace(/alpha\([^\)]*\)/gi, "") + (h == 1 ? "": "alpha(opacity=" + h * 100 + ")");
							f.zoom = 1
						}
					}
				}
			} else {
				if (h && h.constructor == Number && !b.test(d)) {
					h = h + "px"
				}
				f[e] = h
			}
		} else {
			for (var i in d) {
				if (typeof d[i] != "function") {
					bpull.setStyle(g, i, d[i])
				}
			}
		}
		return
	}
} ();
bpull.hide = function() {
	bpull.each(arguments,
	function(a) {
		if (a = bpull.G(a)) {
			a.style.display = "none"
		}
	})
};
bpull.show = function() {
	bpull.each(arguments,
	function(a) {
		if (a = bpull.G(a)) {
			a.style.display = ""
		}
	})
};
bpull.toggle = function() {
	this.each(arguments,
	function(a) {
		if (a = bpull.G(a)) {
			a.style.display = a.style.display == "none" ? "": "none"
		}
	})
};
bpull.un = function(b, f, k) {
	if (! (b = this.G(b)) || typeof k != "function") {
		return b
	}
	f = f.replace(/^on/i, "").toLowerCase();
	var g = bpull.on._listeners;
	if (!k) {
		var h;
		for (var c = 0,
		e = g.length; c < e; c++) {
			h = g[c];
			if (h && h[0] === b && h[1] === f) {
				bpull.un(b, f, h[2])
			}
		}
		return b
	}
	function a(o, n, q) {
		for (var p = 0,
		m = g.length; p < m; ++p) {
			var l = g[p];
			if (l && l[2] === k && l[0] === b && l[1] === f) {
				return p
			}
		}
		return - 1
	}
	var d = a(b, f, k);
	var j = null;
	if (d >= 0) {
		j = g[d]
	} else {
		return b
	}
	if (b.detachEvent) {
		b.detachEvent("on" + f, j[3])
	} else {
		if (b.removeEventListener) {
			b.removeEventListener(f, j[3], false)
		}
	}
	delete j[3];
	delete j[2];
	g.splice(d, 1);
	return b
};
bpull.date = bpull.date || {};
bpull.number = bpull.number || {};
bpull.number.pad = function(c, b) {
	var a, d = "";
	a = c.toString();
	if (typeof(b) != "number") {
		return a
	}
	if (a.length < b) {
		d = new Array(b - a.length + 1);
		d = d.join("0")
	}
	return d + a
};
bpull.date.format = function(c, g) {
	if (typeof(g) != "string") {
		return null
	}
	var a = function(m, l) {
		e = e.replace(m, l)
	};
	var b = bpull.number.pad;
	var e = g;
	var h = c.getFullYear();
	var f = c.getMonth() + 1;
	var k = c.getDate();
	var i = c.getHours();
	var d = c.getMinutes();
	var j = c.getSeconds();
	a(/yyyy/g, b(h, 4));
	a(/yy/g, b(h.toString().slice(2), 2));
	a(/MM/g, b(f, 2));
	a(/M/g, f);
	a(/dd/g, b(k, 2));
	a(/d/g, k);
	a(/d/g, k);
	a(/HH/g, b(i, 2));
	a(/H/g, i);
	a(/hh/g, b(i % 12, 2));
	a(/h/g, i % 12);
	a(/mm/g, b(d, 2));
	a(/m/g, d);
	a(/ss/g, b(j, 2));
	a(/s/g, j);
	return e
};
bpull.date.parse = function(a) {
	var b = new RegExp("^\\d+(\\-|\\/)\\d+(\\-|\\/)\\d+\x24");
	if (typeof(a) == "string") {
		if (b.test(a) || isNaN(Date.parse(a))) {
			var c = a.split(/ |T/);
			if (c.length > 1) {
				c[1] = c[1].split(/[^\d]/)
			} else {
				c[1] = [0, 0, 0]
			}
			c[0] = c[0].split(/[^\d]/);
			return new Date(c[0][0] - 0, c[0][1] - 1, c[0][2] - 0, c[1][0] - 0, c[1][1] - 0, c[1][2] - 0)
		} else {
			return new Date(a)
		}
	} else {
		return new Date()
	}
};
bpull.dom.children = function(b) {
	b = bpull.G(b);
	if (! (bpull.isElement(b) || bpull.isDocument(b))) {
		throw new Error("[bpull.dom.children] param must be Element or Document")
	}
	var a = [];
	bpull.each(b.childNodes,
	function(c) {
		if (c.nodeType == 1) {
			a.push(c)
		}
	});
	return a
};
bpull.dom.contains = function(b, a) {
	b = bpull.G(b);
	a = bpull.G(a);
	if (! (bpull.isElement(b) || bpull.isDocument(b))) {
		throw new Error("[bpull.dom.contains] parent_node param must be Element or Document")
	}
	if (!bpull.isElement(a)) {
		throw new Error("[bpull.dom.children] child_node param must be Element")
	}
	return b.contains ? b != a && b.contains(a) : !!(b.compareDocumentPosition(a) & 16)
};
bpull.encodeHTML = function(a) {
	return a.replace(/&/g, "&amp;").replace(/</g, "&lt;").replace(/>/g, "&gt;").replace(/"/g, "&quot;")
};
bpull.setAttr = function(c, a, d) {
	var b = {
		cellpadding: "cellPadding",
		cellspacing: "cellSpacing",
		colspan: "colSpan",
		rowspan: "rowSpan",
		valign: "vAlign",
		height: "height",
		width: "width",
		usemap: "useMap",
		frameborder: "frameBorder"
	};
	if (c = bpull.G(c)) {
		if (bpull.isString(a)) {
			if (a == "style") {
				c.style.cssText = d
			} else {
				if (a == "class") {
					c.className = d
				} else {
					if (a == "for") {
						c.htmlFor = d
					} else {
						if (a in b) {
							c.setAttribute(b[a], d)
						} else {
							c[a] = d
						}
					}
				}
			}
		} else {
			for (var e in a) {
				if (typeof a[e] != "function") {
					bpull.setAttr(c, e, a[e])
				}
			}
		}
	}
};
bpull.dom.setProperties = function(b, a) {
	b = bpull.G(b);
	bpull.each(a,
	function(d, c) {
		bpull.setAttr(b, c, d)
	})
};
bpull.dom.create = function(b, a) {
	b = String(b);
	if (b == "") {
		throw new Error("[bpull.dom.create] param tagName can not be empty")
	}
	if (bpull.ie && a && a.name) {
		b = "<" + b + ' name="' + bpull.encodeHTML(a.name) + '">'
	}
	var c = document.createElement(b);
	if (a) {
		bpull.dom.setProperties(c, a)
	}
	return c
};
bpull.dom.matchNode = function(b, a, d) {
	b = bpull.G(b);
	if (bpull.isElement(b) || bpull.isDocument(b)) {
		var c = b[d];
		while (c) {
			if (c.nodeType == 1) {
				return c
			}
			c = c[a]
		}
		return null
	} else {
		throw new Error("[bpull.dom.matchNode] param must be Element or Document")
	}
};
bpull.dom.first = function(a) {
	return bpull.dom.matchNode(a, "nextSibling", "firstChild")
};
bpull.dom.getWindow = function(a) {
	if (!bpull.isDocument(a)) {
		throw new Error("[bpull.dom.getWindow] param must be Document")
	}
	return a.parentWindow ? a.parentWindow: (a.defaultView ? a.defaultView: null)
};
bpull.dom.last = function(a) {
	return bpull.dom.matchNode(a, "previousSibling", "lastChild")
};
bpull.dom.loadCssFile = function(b, c) {
	var a = document.createElement("link");
	if (c) {
		a.id = c
	}
	a.setAttribute("rel", "stylesheet");
	a.setAttribute("type", "text/css");
	a.setAttribute("href", b);
	document.getElementsByTagName("head")[0].appendChild(a)
};
bpull.dom.loadJsFile = function(b) {
	var a = document.createElement("script");
	a.setAttribute("type", "text/javascript");
	a.setAttribute("src", b);
	a.setAttribute("defer", "defer");
	document.getElementsByTagName("head")[0].appendChild(a)
};
bpull.dom.next = function(a) {
	return bpull.dom.matchNode(a, "nextSibling", "nextSibling")
};
bpull.dom.prev = function(a) {
	return bpull.dom.matchNode(a, "previousSibling", "previousSibling")
};
bpull.dom.ready = function() {
	var c = false,
	e = false,
	d = [];
	function a() {
		if (!c) {
			c = true;
			for (var g = 0,
			f = d.length; g < f; g++) {
				try {
					d[g]()
				} catch(h) {}
			}
		}
	}
	function b() {
		if (e) {
			return
		}
		e = true;
		if (document.addEventListener && !bpull.opera) {
			document.addEventListener("DOMContentLoaded", a, false)
		}
		if (bpull.ie && window == top) { (function() {
				if (c) {
					return
				}
				try {
					document.documentElement.doScroll("left")
				} catch(g) {
					setTimeout(arguments.callee, 0);
					return
				}
				a()
			})()
		}
		if (bpull.opera) {
			document.addEventListener("DOMContentLoaded",
			function() {
				if (c) {
					return
				}
				for (var g = 0; g < document.styleSheets.length; g++) {
					if (document.styleSheets[g].disabled) {
						setTimeout(arguments.callee, 0);
						return
					}
				}
				a()
			},
			false)
		}
		if (bpull.safari) {
			var f; (function() {
				if (c) {
					return
				}
				if (document.readyState != "loaded" && document.readyState != "complete") {
					setTimeout(arguments.callee, 0);
					return
				}
				if (f === undefined) {
					f = 0;
					var l = document.getElementsByTagName("style");
					var h = document.getElementsByTagName("link");
					if (l) {
						f += l.length
					}
					if (h) {
						for (var k = 0,
						g = h.length; k < g; k++) {
							if (h[k].getAttribute("rel") == "stylesheet") {
								f++
							}
						}
					}
				}
				if (document.styleSheets.length != f) {
					setTimeout(arguments.callee, 0);
					return
				}
				a()
			})()
		}
		if (window.attachEvent) {
			window.attachEvent("onload", a)
		} else {
			window.addEventListener("load", a, false)
		}
	}
	return function(f) {
		if (typeof f != "function") {
			return false
		}
		b();
		if (c) {
			f()
		} else {
			d[d.length] = f
		}
	}
} ();
bpull.ready = bpull.dom.ready;
bpull.dom.remove = function(a) {
	a = bpull.G(a);
	if (!bpull.isElement(a)) {
		throw new Error("[bpull.dom.remove] param must be Element")
	}
	if (bpull.ie) {
		if (a && a.nodeName != "BODY") {
			var b = document.createElement("DIV");
			b.appendChild(a);
			b.innerHTML = "";
			b = null
		}
	} else {
		if (a && a.parentNode && a.nodeName != "BODY") {
			a.parentNode.removeChild(a)
		}
	}
};
bpull.json = bpull.json || {};
bpull.json.decode = function(string) {
	return eval("(" + string + ")")
}; -
function() {
	var a = new(function() {
		var d = {}.hasOwnProperty ? true: false;
		var e = function(h) {
			return h < 10 ? "0" + h: h
		};
		var b = {
			"\b": "\\b",
			"\t": "\\t",
			"\n": "\\n",
			"\f": "\\f",
			"\r": "\\r",
			'"': '\\"',
			"\\": "\\\\"
		};
		var c = function(h) {
			if (/["\\\x00-\x1f]/.test(h)) {
				return '"' + h.replace(/([\x00-\x1f\\"])/g,
				function(j, i) {
					var k = b[i];
					if (k) {
						return k
					}
					k = i.charCodeAt();
					return "\\u00" + Math.floor(k / 16).toString(16) + (k % 16).toString(16)
				}) + '"'
			}
			return '"' + h + '"'
		};
		var f = function(p) {
			var k = ["["],
			h,
			n,
			j = p.length,
			m;
			for (n = 0; n < j; n += 1) {
				m = p[n];
				switch (typeof m) {
				case "undefined":
				case "function":
				case "unknown":
					break;
				default:
					if (h) {
						k.push(",")
					}
					k.push(m === null ? "null": a.encode(m));
					h = true
				}
			}
			k.push("]");
			return k.join("")
		};
		var g = function(h) {
			return '"' + h.getFullYear() + "-" + e(h.getMonth() + 1) + "-" + e(h.getDate()) + "T" + e(h.getHours()) + ":" + e(h.getMinutes()) + ":" + e(h.getSeconds()) + '"'
		};
		this.encode = function(m) {
			if (typeof m == "undefined") {
				return "undefined"
			} else {
				if (m === null) {
					return "null"
				} else {
					if (m instanceof Array) {
						return f(m)
					} else {
						if (m instanceof Date) {
							return g(m)
						} else {
							if (typeof m == "string") {
								return c(m)
							} else {
								if (typeof m == "number") {
									return isFinite(m) ? String(m) : "null"
								} else {
									if (typeof m == "boolean") {
										return String(m)
									} else {
										var j = ["{"],
										h,
										l,
										k;
										for (l in m) {
											if (!d || m.hasOwnProperty(l)) {
												k = m[l];
												switch (typeof k) {
												case "undefined":
												case "function":
												case "unknown":
													break;
												default:
													if (h) {
														j.push(",")
													}
													j.push(a.encode(l), ":", k === null ? "null": a.encode(k));
													h = true
												}
											}
										}
										j.push("}");
										return j.join("")
									}
								}
							}
						}
					}
				}
			}
		}
	})();
	bpull.json.encode = a.encode
} ();
bpull.number.comma = function(c, b) {
	var d, a;
	d = c.toString().split(".");
	d[0] = d[0].split("").reverse().join("");
	if (typeof(b) != "number" || b < 1) {
		b = 3
	}
	a = new RegExp("\\d{" + b + "}", "g");
	d[0] = d[0].replace(a,
	function(e) {
		return e + ","
	});
	d[0] = d[0].split("").reverse().join("");
	if (d[0].charAt(0) == ",") {
		d[0] = d[0].slice(1)
	}
	return d[0] + (d[1] ? ("." + d[1]) : "")
};
bpull.url = bpull.url || {};
bpull.string = bpull.string || {};
bpull.string.escapeReg = function(a) {
	return String(a).replace(new RegExp("([.*+?^=!:\x24{}()|[\\]/\\\\])", "g"), "\\\x241")
};
bpull.url.parseQuery = function(j, n) {
	if (n) {
		var l = new RegExp("(^|&|\\?|#)" + bpull.string.escapeReg(n) + "=([^&]*)(&|\x24)", "");
		var k = j.match(l);
		if (k) {
			return k[2]
		}
	} else {
		if (j) {
			j = j.substr(j.indexOf("?") + 1, j.length);
			var g = j.split("&");
			var h = {},
			e = [],
			d,
			c,
			m;
			for (var f = 0; f < g.length; f++) {
				d = g[f].split("=");
				c = d[0],
				m = d[1];
				if (c === "") {
					continue
				}
				if (typeof h[c] == "undefined") {
					h[c] = m
				} else {
					if (bpull.isString(h[c])) {
						continue
					} else {
						h[c].push(m)
					}
				}
			}
			return h
		}
	}
	return null
};
bpull.string.getByteLength = function(a) {
	return String(a).replace(/[^\x00-\xff]/g, "mm").length
};
bpull.string.subByte = function(h, g) {
	h = String(h);
	if (bpull.string.getByteLength(h) <= g) {
		return h
	}
	var e, c, j, k;
	for (var f = Math.floor(g / 2) - 1, d = h.length; f < d; f++) {
		e = h.substr(0, f);
		j = bpull.string.getByteLength(e);
		if (j == g) {
			return e
		} else {
			c = h.substr(0, f + 1);
			k = bpull.string.getByteLength(c);
			if (j < g && k > g) {
				return e
			}
		}
	}
	return h
};
bpull.string.toHalfWidth = function(a) {
	return String(a).replace(/[\uFF01-\uFF5E]/g,
	function(b) {
		return String.fromCharCode(b.charCodeAt(0) - 65248)
	}).replace(/\u3000/g, " ")
};
bpull.url.simpleEscape = function(a) {
	if (bpull.isString(a)) {
		return encodeURI(encodeURI(a));
		//return a.replace(/\%/gi, "%25").replace(/&/gi, "%26").replace(/\+/gi, "%2B").replace(/\ /gi, "%20").replace(/\//gi, "%2F").replace(/\#/gi, "%23").replace(/\=/gi, "%3D")
	}
	return a
};
bpull.url.jsonToQuery = function(e) {
	if (!e || typeof e != "object") {
		return null
	}
	var c = "";
	var b = [];
	var d = 0;
	for (var a in e) {
		b[d] = bpull.url.simpleEscape(a) + "=" + bpull.url.simpleEscape(e[a]);
		d++;
	}
	b = b.join("&");
	return b
};
window.bpull = window.bpull || {
	version: "1-0-0",
	emptyFn: function() {}
};
bpull.isString = function(a) {
	return (typeof a == "object" && a && a.constructor == String) || typeof a == "string"
};
bpull.swf = bpull.swf || {};
bpull.swf.getMovie = function(a) {
	return document[a] || window[a]
};
bpull.swf.getVersion = function() {
	var h = navigator;
	if (h.plugins && h.mimeTypes.length) {
		var b = h.plugins["Shockwave Flash"];
		if (b && b.description) {
			return b.description.replace(/([a-zA-Z]|\s)+/, "").replace(/(\s)+r/, ".") + ".0"
		}
	} else {
		if (window.ActiveXObject && !window.opera) {
			for (var d = 10; d >= 2; d--) {
				try {
					var g = new ActiveXObject("ShockwaveFlash.ShockwaveFlash." + d);
					if (g) {
						return d + ".0.0";
						break
					}
				} catch(f) {}
			}
		}
	}
};
bpull.swf.createHTML = function(q) {
	q = q || {};
	var h = bpull.swf.getVersion(),
	p = 1;
	var f = q.ver || "6.0.0",
	e, c;
	if (h) {
		h = h.split(".");
		f = f.split(".");
		for (var d = 0; d < 3; d++) {
			e = parseInt(h[d], 10);
			c = parseInt(f[d], 10);
			if (c < e) {
				break
			} else {
				if (c > e) {
					p = 0;
					break
				}
			}
		}
	} else {
		p = 0
	}
	if (!p) {
		return ""
	}
	var l = q.vars;
	var d, b, g, o;
	var j = ["classid", "codebase", "id", "width", "height", "align"];
	q.align = q.align || "middle";
	q.classid = "clsid:d27cdb6e-ae6d-11cf-96b8-444553540000";
	q.codebase = "http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,0,0";
	q.movie = q.url || "";
	delete q.vars;
	delete q.url;
	if (bpull.isString(l)) {
		q.flashvars = l
	} else {
		var n = [];
		for (b in l) {
			o = l[b];
			if (o) {
				n.push(b + "=" + encodeURIComponent(o))
			}
		}
		q.flashvars = n.join("&")
	}
	var m = ["<object "];
	for (d = 0, g = j.length; d < g; d++) {
		o = j[d];
		m.push(" ", o, '="', q[o], '"')
	}
	m.push(">");
	var a = {
		wmode: 1,
		scale: 1,
		quality: 1,
		play: 1,
		loop: 1,
		menu: 1,
		salign: 1,
		bgcolor: 1,
		base: 1,
		allowScriptAccess: 1,
		allownetworking: 1,
		allowfullscreen: 1,
		seamlesstabbing: 1,
		devicefont: 1,
		swliveconnect: 1,
		flashvars: 1,
		movie: 1
	};
	for (b in q) {
		o = q[b];
		if (a[b] && o) {
			m.push('<param name="' + b + '" value="' + o + '" />')
		}
	}
	q.src = q.movie;
	q.name = q.id;
	delete q.id;
	delete q.movie;
	delete q.classid;
	delete q.codebase;
	q.type = "application/x-shockwave-flash";
	q.pluginspage = "http://www.macromedia.com/go/getflashplayer";
	m.push("<embed");
	for (b in q) {
		o = q[b];
		if (o) {
			m.push(" ", b, '="', o, '"')
		}
	}
	m.push("></embed></object>");
	return m.join("")
};
bpull.swf.create = function(a, d) {
	a = a || {};
	var b = bpull.swf.createHTML(a);
	var c = true;
	if (d && bpull.isString(d)) {
		d = document.getElementById(d)
	}
	if (b.length <= 0) {
		b = a.errorMessage || "";
		c = false
	}
	if (d) {
		d.innerHTML = b
	} else {
		document.write(b)
	}
	return c
};
bpull.cookie = bpull.cookie || {
	isValidKey: function(a) {
		return (new RegExp('^[^\\x00-\\x20\\x7f\\(\\)<>@,;:\\\\\\"\\[\\]\\?=\\{\\}\\/\\u0080-\\uffff]+\x24')).test(a)
	}
};
bpull.isString = function(a) {
	return (typeof a == "object" && a && a.constructor == String) || typeof a == "string"
};
bpull.cookie.getRaw = function(b) {
	if (!bpull.cookie.isValidKey(b)) {
		return null
	}
	var c = new RegExp("(^| )" + b + "=([^;]*)(;|\x24)");
	var a = c.exec(document.cookie);
	if (a) {
		return a[2] || null
	}
	return null
};
bpull.cookie.get = function(a) {
	var b = bpull.cookie.getRaw(a);
	if (bpull.isString(b)) {
		b = decodeURIComponent(b);
		return b
	}
	return null
};
bpull.cookie.setRaw = function(c, d, b) {
	if (!bpull.cookie.isValidKey(c)) {
		return false
	}
	b = b || {};
	var a;
	switch (typeof(b.expires)) {
	case "number":
		a = new Date();
		a.setTime(a.getTime() + b.expires);
		break;
	case "object":
		if (b.expires instanceof Date) {
			a = b.expires
		}
	}
	document.cookie = c + "=" + d + (b.path ? "; path=" + b.path: "") + (a ? "; expires=" + a.toGMTString() : "") + (b.domain ? "; domain=" + b.domain: "") + (b.secure ? "; secure": "");
	return true
};
bpull.cookie.remove = function(a) {
	return bpull.cookie.setRaw(a, "", {
		expires: new Date(0)
	})
};
bpull.cookie.set = function(b, c, a) {
	return bpull.cookie.setRaw(b, encodeURIComponent(c), a)
};
